#include <iostream>
#include <cstring>

using namespace std;
const int N=2*1e5+10;


int h[N*2],ne[N*2],to[N*2],idx;
int dp[N][2];
void add(int x,int y)
{
	to[idx]=y;
	ne[idx]=h[x];
	h[x]=idx++;
}
void dfs(int u,int fa)
{
  dp[u][1]=1;
	for(int i=h[u];~i;i=ne[i])
	{
		if(to[i]==fa)
			continue;
		dfs(to[i],u);
		dp[u][0]+=dp[to[i]][1];
		dp[u][1]+=min(dp[to[i]][0],dp[to[i]][1]);
	}
}

int main()
{
	int n;
	cin>>n;
	memset(h,-1,sizeof(h));
	for(int i=1;i<n;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		add(x,y);
		add(y,x);
	}
	dfs(1,-1);
	cout<<min(dp[1][0],dp[1][1]);
	return 0;
}
